Setup

Packages

# Packages
require(ggplot2)
require(plotly)
require(geojsonio)
require(sp)
require(sf)
require(rvest)
require(RSelenium)
require(htmltools)
require(ggmap)
require(lubridate)
require(stringr)

Data

# Download file for state info

url = "https://opendata.arcgis.com/datasets/5f45e1ece6e14ef5866974a7b57d3b95_1.geojson"

file = "NJ_counties.geojson"

download.file(url,file)

rm(url)
# Convert file to sf object 

file = "NJ_counties.geojson"

NJ_Counties <-
  geojson_sf(file)
rm(file)
#get page source from website

gc()
driver <- rsDriver(browser = c("firefox"), port = 44454L)
remote_driver <- driver[["client"]] 
remote_driver$navigate("https://www.childrens-specialized.org/locations-directory/?")

page <- remote_driver$getPageSource()
# Retrieve information from directory

Xpathgen1 = "/html/body/div[1]/div/div/div[2]/div/div[2]/div["

Xpathgen2 = "]/div/div[2]/article"

Hosinfo <- data.frame()

for (i in 1:15){
  XPath <- paste(Xpathgen1,i,Xpathgen2,sep = "")
  Node <- page[[1]] %>% 
    read_html() %>%
    html_nodes(xpath = XPath)
  name <-
    Node[[1]] %>%
    html_node("h2") %>%
    html_text()
  address <-
    Node[[1]] %>%
    html_node("h3") %>%
    html_text() %>%
    gsub(pattern = "\n *",replacement = " ", x = .)
  for (i in 1:7){
  XPathday <- paste(XPath,"/div[",i,"]",sep = "")
  day <- page[[1]] %>% 
    read_html() %>%
    html_nodes(xpath = XPathday) %>%
    html_attr("class") %>%
    grep("-Hours",x = .,value = TRUE) %>%
    gsub("-Hours","",x = .)
  times <-
    page[[1]] %>% 
    read_html() %>%
    html_nodes(xpath = XPathday) %>%
    html_node("h3") %>%
    html_text()
  assign(day,times)
  }
  row = data.frame(name,address,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday)
  Hosinfo <-  rbind(Hosinfo,row)
}

# Write csv file 

write.csv(Hosinfo, "Hospitals.csv")
write.csv("Hospitalsloc.csv")
"","x"
"1","Hospitalsloc.csv"

Graphs


# Population heat maps of NJ using plotly and plot

NJ_Counties_Cleaned <- 
  NJ_Counties %>%
  transmute(
    county = COUNTY,
    CO = CO,
    pop = POP2010,
    popdensity = POPDEN2010,
    Shape_Length = Shape_Length,
    Shape_Area = Shape_Area,
    GNIS = GNIS
  )




NJ <-
  NJ_Counties_Cleaned %>%
  ggplot() +
  geom_sf(aes(fill = pop)) +
  theme(legend.position = "None") +
  theme(axis.ticks.x = element_blank(),
        axis.text.x = element_blank())

ggplotly(NJ)



plot(NJ_Counties_Cleaned["pop"])


# Location of Hospitals in NJ 

read.csv()
LS0tDQp0aXRsZTogIkdlb2pzb24gVGVzdGluZyINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQoNCiMjIyBTZXR1cA0KDQojIyMjIFBhY2thZ2VzDQoNCmBgYHtyfQ0KIyBQYWNrYWdlcw0KcmVxdWlyZShnZ3Bsb3QyKQ0KcmVxdWlyZShwbG90bHkpDQpyZXF1aXJlKGdlb2pzb25pbykNCnJlcXVpcmUoc3ApDQpyZXF1aXJlKHNmKQ0KcmVxdWlyZShydmVzdCkNCnJlcXVpcmUoUlNlbGVuaXVtKQ0KcmVxdWlyZShodG1sdG9vbHMpDQpyZXF1aXJlKGdnbWFwKQ0KcmVxdWlyZShsdWJyaWRhdGUpDQpyZXF1aXJlKHN0cmluZ3IpDQpgYGANCg0KIyMjIyBEYXRhDQoNCg0KYGBge3J9DQojIERvd25sb2FkIGZpbGUgZm9yIHN0YXRlIGluZm8NCg0KdXJsID0gImh0dHBzOi8vb3BlbmRhdGEuYXJjZ2lzLmNvbS9kYXRhc2V0cy81ZjQ1ZTFlY2U2ZTE0ZWY1ODY2OTc0YTdiNTdkM2I5NV8xLmdlb2pzb24iDQoNCmZpbGUgPSAiTkpfY291bnRpZXMuZ2VvanNvbiINCg0KZG93bmxvYWQuZmlsZSh1cmwsZmlsZSkNCg0Kcm0odXJsKQ0KYGBgDQoNCmBgYHtyfQ0KIyBDb252ZXJ0IGZpbGUgdG8gc2Ygb2JqZWN0IA0KDQpmaWxlID0gIk5KX2NvdW50aWVzLmdlb2pzb24iDQoNCk5KX0NvdW50aWVzIDwtDQogIGdlb2pzb25fc2YoZmlsZSkNCnJtKGZpbGUpDQpgYGANCg0KYGBge3J9DQojZ2V0IHBhZ2Ugc291cmNlIGZyb20gd2Vic2l0ZQ0KDQpnYygpDQpkcml2ZXIgPC0gcnNEcml2ZXIoYnJvd3NlciA9IGMoImZpcmVmb3giKSwgcG9ydCA9IDQ0NDU0TCkNCnJlbW90ZV9kcml2ZXIgPC0gZHJpdmVyW1siY2xpZW50Il1dIA0KcmVtb3RlX2RyaXZlciRuYXZpZ2F0ZSgiaHR0cHM6Ly93d3cuY2hpbGRyZW5zLXNwZWNpYWxpemVkLm9yZy9sb2NhdGlvbnMtZGlyZWN0b3J5Lz8iKQ0KDQpwYWdlIDwtIHJlbW90ZV9kcml2ZXIkZ2V0UGFnZVNvdXJjZSgpDQpgYGANCg0KYGBge3J9DQojIFJldHJpZXZlIGluZm9ybWF0aW9uIGZyb20gZGlyZWN0b3J5DQoNClhwYXRoZ2VuMSA9ICIvaHRtbC9ib2R5L2RpdlsxXS9kaXYvZGl2L2RpdlsyXS9kaXYvZGl2WzJdL2RpdlsiDQoNClhwYXRoZ2VuMiA9ICJdL2Rpdi9kaXZbMl0vYXJ0aWNsZSINCg0KSG9zaW5mbyA8LSBkYXRhLmZyYW1lKCkNCg0KZm9yIChpIGluIDE6MTUpew0KICBYUGF0aCA8LSBwYXN0ZShYcGF0aGdlbjEsaSxYcGF0aGdlbjIsc2VwID0gIiIpDQogIE5vZGUgPC0gcGFnZVtbMV1dICU+JSANCiAgICByZWFkX2h0bWwoKSAlPiUNCiAgICBodG1sX25vZGVzKHhwYXRoID0gWFBhdGgpDQogIG5hbWUgPC0NCiAgICBOb2RlW1sxXV0gJT4lDQogICAgaHRtbF9ub2RlKCJoMiIpICU+JQ0KICAgIGh0bWxfdGV4dCgpDQogIGFkZHJlc3MgPC0NCiAgICBOb2RlW1sxXV0gJT4lDQogICAgaHRtbF9ub2RlKCJoMyIpICU+JQ0KICAgIGh0bWxfdGV4dCgpICU+JQ0KICAgIGdzdWIocGF0dGVybiA9ICJcbiAqIixyZXBsYWNlbWVudCA9ICIgIiwgeCA9IC4pDQogIGZvciAoaSBpbiAxOjcpew0KICBYUGF0aGRheSA8LSBwYXN0ZShYUGF0aCwiL2RpdlsiLGksIl0iLHNlcCA9ICIiKQ0KICBkYXkgPC0gcGFnZVtbMV1dICU+JSANCiAgICByZWFkX2h0bWwoKSAlPiUNCiAgICBodG1sX25vZGVzKHhwYXRoID0gWFBhdGhkYXkpICU+JQ0KICAgIGh0bWxfYXR0cigiY2xhc3MiKSAlPiUNCiAgICBncmVwKCItSG91cnMiLHggPSAuLHZhbHVlID0gVFJVRSkgJT4lDQogICAgZ3N1YigiLUhvdXJzIiwiIix4ID0gLikNCiAgdGltZXMgPC0NCiAgICBwYWdlW1sxXV0gJT4lIA0KICAgIHJlYWRfaHRtbCgpICU+JQ0KICAgIGh0bWxfbm9kZXMoeHBhdGggPSBYUGF0aGRheSkgJT4lDQogICAgaHRtbF9ub2RlKCJoMyIpICU+JQ0KICAgIGh0bWxfdGV4dCgpDQogIGFzc2lnbihkYXksdGltZXMpDQogIH0NCiAgcm93ID0gZGF0YS5mcmFtZShuYW1lLGFkZHJlc3MsTW9uZGF5LFR1ZXNkYXksV2VkbmVzZGF5LFRodXJzZGF5LEZyaWRheSxTYXR1cmRheSxTdW5kYXkpDQogIEhvc2luZm8gPC0gIHJiaW5kKEhvc2luZm8scm93KQ0KfQ0KDQojIFdyaXRlIGNzdiBmaWxlIA0KDQp3cml0ZS5jc3YoSG9zaW5mbywgIkhvc3BpdGFscy5jc3YiKQ0KYGBgDQoNCmBgYHtyfQ0KIyBEYXRhIFdyYW5nbGluZw0KDQpIb3NpbmZvIDwtIHJlYWQuY3N2KCJIb3NwaXRhbHMuY3N2IikNCg0KcGF0dGVybiA8LSAiKFswLTFdKlswLTldOlswLTVdWzAtOV0gKltBYVBwXVtNbV1bLXRvIF0rWzAtMV0qWzAtOV06WzAtNV1bMC05XSAqW0FhUHBdW01tXSkiDQoNCkhvc2NsZWFuZWQgPC0gDQogIEhvc2luZm8gJT4lDQogIHNlbGVjdChuYW1lLGFkZHJlc3MpICU+JQ0KICBtdXRhdGVfZ2VvY29kZShhZGRyZXNzKSAjIFJlcXVpcmVzIGdvb2dsZSBBUEkga2V5DQoNCndyaXRlLmNzdihIb3NjbGVhbmVkLCJIb3NwaXRhbHNsb2MuY3N2IikNCg0KYGBgDQoNCg0KIyMjIEdyYXBocyANCg0KYGBge3J9DQoNCiMgUG9wdWxhdGlvbiBoZWF0IG1hcHMgb2YgTkogdXNpbmcgcGxvdGx5IGFuZCBwbG90DQoNCk5KX0NvdW50aWVzX0NsZWFuZWQgPC0gDQogIE5KX0NvdW50aWVzICU+JQ0KICB0cmFuc211dGUoDQogICAgY291bnR5ID0gQ09VTlRZLA0KICAgIENPID0gQ08sDQogICAgcG9wID0gUE9QMjAxMCwNCiAgICBwb3BkZW5zaXR5ID0gUE9QREVOMjAxMCwNCiAgICBTaGFwZV9MZW5ndGggPSBTaGFwZV9MZW5ndGgsDQogICAgU2hhcGVfQXJlYSA9IFNoYXBlX0FyZWEsDQogICAgR05JUyA9IEdOSVMNCiAgKQ0KDQoNCg0KDQpOSiA8LQ0KICBOSl9Db3VudGllc19DbGVhbmVkICU+JQ0KICBnZ3Bsb3QoKSArDQogIGdlb21fc2YoYWVzKGZpbGwgPSBwb3ApKSArDQogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJOb25lIikgKw0KICB0aGVtZShheGlzLnRpY2tzLnggPSBlbGVtZW50X2JsYW5rKCksDQogICAgICAgIGF4aXMudGV4dC54ID0gZWxlbWVudF9ibGFuaygpKQ0KDQpnZ3Bsb3RseShOSikNCg0KDQpwbG90KE5KX0NvdW50aWVzX0NsZWFuZWRbInBvcCJdKQ0KYGBgDQoNCg0KYGBge3J9DQoNCiMgTG9jYXRpb24gb2YgSG9zcGl0YWxzIGluIE5KIA0KDQpyZWFkLmNzdigpDQoNCg0KDQoNCg0KYGBgDQoNCg==